package com.company.aicrawlers.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 采集任务表
 * 
 * @author AI Crawlers
 * @since 2025-10-10
 */
@Data
@TableName("collect_task")
public class CollectTask implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 任务ID
     */
    @TableId(value = "task_id", type = IdType.AUTO)
    private Long taskId;

    /**
     * 任务名称
     */
    private String taskName;

    /**
     * 问句总数
     */
    private Integer totalQuestionCount;

    /**
     * 平台总数 (V2新增)
     */
    private Integer totalPlatformCount;

    /**
     * 总采集次数（问句数×平台数）
     */
    private Integer totalCollectCount;

    /**
     * 任务状态: pending-待执行, running-执行中, completed-已完成, cancelled-已取消, failed-失败
     */
    private String taskStatus;

    /**
     * 已完成采集数
     */
    private Integer progressCompleted;

    /**
     * 完成百分比
     */
    private BigDecimal progressPercentage;

    /**
     * 成功采集次数
     */
    private Integer successCount;

    /**
     * 失败采集次数
     */
    private Integer failCount;

    /**
     * 任务开始时间
     */
    private LocalDateTime startTime;

    /**
     * 任务结束时间
     */
    private LocalDateTime endTime;

    /**
     * 任务总耗时（秒）
     */
    private Integer duration;

    /**
     * 备注信息
     */
    private String remark;

    /**
     * 创建人
     */
    private String createBy;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
}

